import { defineConfig } from 'vite'
import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
import viteCompression from 'vite-plugin-compression';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    //打包压缩
    viteCompression()],
  resolve:{
    //别名
    alias:{
      '@':resolve(__dirname,'src')
    },
    //后缀名省略
    extensions:['.js','.json','.ts']
  },
  css:{
    //配置css公共变量
    preprocessorOptions:{
      scss: {
        additionalData: `@import "@/assets/common.scss";`
      },
    }
  },
  //打包优化
  rollupOptions: {
    output: {
      manualChunks: {
        // 拆分代码，这个就是分包，配置完后自动按需加载，现在还比不上webpack的splitchunk，不过也能用了。
        vue: ['vue', 'vue-router', 'vuex'],
      //  vant: ['vant'],
       // echarts: ['echarts'],
        // echarts: ['echarts'],
      },
    },
  },
  //开发服务配置
  server:{
    host:true,
    port:5173,
    strictPort:false,//端口被占用时使用其他端口
  },
  build:{
    target:'es2015',
    minify: 'terser',//开启多线程打包
    cssCodeSplit: true, // css分离，如果设置为false，整个项目中的所有 CSS 将被提取到一个 CSS 文件中
    terserOptions: {
      compress: {
        // warnings: false,
        drop_console: true,  //打包时删除console
        drop_debugger: true, //打包时删除 debugger
        pure_funcs: ['console.log'],
      },
      output: {
        // 去掉注释内容
        comments: true,
      }
    },
  }
})
